package com.example.demo2recursion;

/**
 * 目标：计算n的阶乘
 */
public class RecursionDemo2 {
    public static void main(String[] args) {
        // 输出5的阶乘和1到5的和
        System.out.println("5的阶乘：" + f(5));
        System.out.println("1-5的和：" + f2(5));
    }

    /**
     * 计算给定数字的阶乘
     *
     * @param n 需要计算阶乘的数字
     * @return n的阶乘
     */
    public static int f(int n) {
        if (n == 1) {
            return 1;
        }
        return f(n - 1) * n; // 递归调用
    }

    /**
     * 计算从1到给定数字的和
     *
     * @param n 需要计算和的数字
     * @return 从1到n的和
     */
    public static int f2(int n) {
        if (n == 1) {
            return 1;
        }
        return f2(n - 1) + n; // 递归调用
    }
}

